import 'dart:async';

import 'package:sonora/models/sj_block_list_item_data.dart';
import 'package:sonora/models/sj_broad_caster_data.dart';
import 'package:sonora/models/sj_broad_caster_response_data.dart';
import 'package:sonora/models/sj_friend_list_body.dart';
import 'package:sonora/models/sj_friend_list_item_data.dart';
import 'package:sonora/models/sj_good_search_item_data.dart';
import 'package:sonora/models/sj_login_response_data.dart';
import 'package:sonora/models/sj_response_data.dart';
import 'package:sonora/services/sj_api_home_service.dart';
import 'package:sonora/services/sj_api_medal_service.dart';
import 'package:sonora/services/sj_api_mine_service.dart';
import 'package:sonora/services/sj_api_video_service.dart';
import 'package:sonora/utils/sj_storage_utils.dart';

class SjVideoRepository {
  final SjApiVideoService apiService;
  SjVideoRepository(this.apiService);

  Future<SjResponseData> getUserInfo(String userId) async {
    SjResponseData response = await apiService.getUserInfo(userId);
    return response;
  }

  Future<SjResponseData> languageTranslate(String text) async {
    SjResponseData response = await apiService.languageTranslate(text);
    return response;
  }

  Future<SjResponseData> mediaSearchUrl() async {
    return await apiService.mediaSearchUrl();
  }


  Future<List<SjFriendListItemData>> friendList() async {
    List<SjFriendListItemData> list = await apiService.friendList();
    return list;
  }

  Future<List<SjBlockListItemData>> blockList() async {
    List<SjBlockListItemData> list = await apiService.blockList();
    return list;
  }

  FutureOr<SjResponseData> addFriend(String followUserId) async {
    return await apiService.addFriend(followUserId);
  }

  FutureOr<SjResponseData> unFriend(String followUserId) async {
    return await apiService.unFriend(followUserId);
  }

  FutureOr<SjResponseData> insertRecord(String? broadcasterId, String? complainCategory, String? complainSub) async {
    return await apiService.insertRecord(broadcasterId, complainCategory, complainSub);
  }

  FutureOr<SjResponseData> removeBlock(String blockUserId) async {
    return await apiService.removeBlock(blockUserId);
  }
}
